package template

import (
	c "dkai/config"
	m "dkai/model"
	"dkai/utils"
	"fmt"
	"github.com/goccy/go-json"
)

type Markdown struct {
	Title string
	Text  string
}

type Template interface {
	template() (Markdown, error)
}

type IDefaultTemplate struct {
	Markdown
}
type IWeather struct {
	Markdown
}
type IHotNews struct {
	Markdown
}

func (t IDefaultTemplate) template() (Markdown, error) {
	var template Markdown
	template.Text = "主人，DKAi操作失败了呢～"
	template.Title = ""
	return template, nil
}

//	{
//	   "success": true,
//	   "city": "杭州市",
//	   "info": {
//	       "date": "2022-10-27",
//	       "week": "星期四",
//	       "type": "小雨",
//	       "high": "最高 19°C",
//	       "low": "最低 17°C",
//	       "fengxiang": "东风",
//	       "fengli": "5级",
//	       "night": {
//	           "type": "小雨",
//	           "fengxiang": "东北风",
//	           "fengli": "5级"
//	       },
//	       "air": {
//	           "aqi": 39,
//	           "aqi_level": 1,
//	           "aqi_name": "优",
//	           "co": "1",
//	           "no2": "40",
//	           "o3": "7",
//	           "pm10": "39",
//	           "pm2.5": "20",
//	           "so2": "7"
//	       },
//	       "tip": "光芒透过云缝，洒向大地~ 现在的温度比较凉爽~"
//	   }
//	}
func (t IWeather) template() (Markdown, error) {
	_config := c.GlobalConfig
	// todo 获取天气
	url := _config.Api.Weather.Url // todo 获取不到url
	type RequestBody struct {
		City string
		Type string
	}
	requestBody := RequestBody{
		City: "杭州",
		Type: "day",
	}
	var model m.WeatherModel
	respBytes := httptools.Post(url, requestBody)
	_ = json.Unmarshal(respBytes, &model)

	if !model.Success {
		return Markdown{}, fmt.Errorf("天气获取失败了哦～")
	}

	weather := t.Markdown
	weather.Title = "DKAi为您播报天气咯～"
	var info string
	info = "%s %s "
	weather.Text = fmt.Sprintf(info, model.Info)
	return weather, nil
}

func (t IHotNews) template() Markdown {
	var text string
	// todo 获取热搜

	weather := t.Markdown
	weather.Title = "DKAi给您找到今天的热搜～"
	weather.Text = text
	return weather
}
